約 6,125,506 件
https://w.atwiki.jp/m_shige1979/pages/572.html
作成方法 参考サイト http //badwords.org/w/Compile_mod_python_for_Python_2.6.1 http //d.hatena.ne.jp/mmasashi/20090604/1244117706 mod_pythonソースダウンロード このソースをダウンロードして解凍する C \tools\download cd mod_python-3.3.1 C \tools\download\mod_python-3.3.1 dir ドライブ C のボリューム ラベルは xxxxxxxxx です ボリューム シリアル番号は aaaaaaaaaa です C \tools\download\mod_python-3.3.1 のディレクトリ 2010/06/18 09 09 DIR . 2010/06/18 09 09 DIR .. 2006/03/11 12 46 127,276 configure 2006/03/11 12 46 12,224 configure.in 2004/11/26 07 10 20 COPYRIGHT 2006/08/15 06 09 1,915 CREDITS 2010/06/18 10 05 DIR dist 2010/06/18 09 09 DIR Doc 2010/06/18 09 09 DIR doc-html 2010/06/18 09 08 DIR examples 2004/11/26 07 10 5,598 install-sh 2010/06/18 09 08 DIR lib 2004/11/26 07 10 11,358 LICENSE 2006/03/11 03 21 2,299 Makefile.in 2007/01/29 22 39 11,225 NEWS 2004/11/26 07 10 427 NOTICE 2006/11/07 19 11 7,654 README 2010/06/18 09 59 DIR src 2010/06/18 09 08 DIR test 10 個のファイル 179,996 バイト 9 個のディレクトリ 16,782,934,016 バイトの空き領域 C \tools\download\mod_python-3.3.1 Apacheカスタムインストール Apache2.2をインストールする際、C /Apache2.2のディレクトリへインストールする ※標準のディレクトリにしないこと Visual Studio2008 C++ インストール Visual Studio 2008のインストールを行なう ※Express Editionでも可能かもしれない 一部ソース修正 mod_python-3.3.1/src/connobject.c(140~145付近) 変更前 !(b == APR_BRIGADE_SENTINEL(b) || 変更後 !(b == APR_BRIGADE_SENTINEL(bb) || mod_python-3.3.1/dist/setup.py.in(170~175付近) 変更前 ext_modules = [PSPModule] 変更前 ext_modules = [ModPyModule]#, PSPModule] コンパイル c / cd c /tools/download/mod_python-3.3.1/dist ← フォルダ移動 c /tools/download/mod_python-3.3.1/dist set APACHESRC=C /Apache2.2 ← バッチ変数を設定 c /tools/download/mod_python-3.3.1/dist build_installer.bat ← バッチファイル実行 running bdist_wininst running build running build_py creating build creating build\lib.win32-2.6 creating build\lib.win32-2.6\mod_python copying C \tools\download\mod_python-3.3.1\lib\python\mod_python\apache.py - build\lib.win32-2.6\mod_python copying C \tools\download\mod_python-3.3.1\lib\python\mod_python\cache.py - build\lib.win32-2.6\mod_python copying C \tools\download\mod_python-3.3.1\lib\python\mod_python\cgihandler.py - build\lib.win32-2.6\mod_python copying C \tools\download\mod_python-3.3.1\lib\python\mod_python\Cookie.py - build\lib.win32-2.6\mod_python copying C \tools\download\mod_python-3.3.1\lib\python\mod_python\importer.py - build\lib.win32-2.6\mod_python copying C \tools\download\mod_python-3.3.1\lib\python\mod_python\psp.py - build\lib.win32-2.6\mod_python copying C \tools\download\mod_python-3.3.1\lib\python\mod_python\publisher.py - build\lib.win32-2.6\mod_python copying C \tools\download\mod_python-3.3.1\lib\python\mod_python\python22.py - build\lib.win32-2.6\mod_python copying C \tools\download\mod_python-3.3.1\lib\python\mod_python\Session.py - build\lib.win32-2.6\mod_python copying C \tools\download\mod_python-3.3.1\lib\python\mod_python\testhandler.py - build\lib.win32-2.6\mod_python copying C \tools\download\mod_python-3.3.1\lib\python\mod_python\util.py - build\lib.win32-2.6\mod_python copying C \tools\download\mod_python-3.3.1\lib\python\mod_python\__init__.py - build\lib.win32-2.6\mod_python running build_ext building mod_python_so extension creating build\temp.win32-2.6 creating build\temp.win32-2.6\Release creating build\temp.win32-2.6\Release\tools creating build\temp.win32-2.6\Release\tools\download creating build\temp.win32-2.6\Release\tools\download\mod_python-3.3.1 creating build\temp.win32-2.6\Release\tools\download\mod_python-3.3.1\src C \Program Files\Microsoft Visual Studio 9.0\VC\BIN\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -DWIN32 -DNDEBUG -D_WINDOWS -IC \tools\download\mod_python-3.3.1\src\include -IC \Apache2.2\include -IC \Python26\include -IC \Python26\PC /TcC \tools\download\mod_python-3.3.1\src\mod_python.c /Fobuild\temp.win32-2.6\Release\tools\download\mod_python-3.3.1\src\mod_python.obj mod_python.c c \python26\include\pyconfig.h(358) warning C4005 PLATFORM マクロが再定義されました。 c \apache2.2\include\os.h(41) PLATFORM の前の定義を確認してください C \tools\download\mod_python-3.3.1\src\mod_python.c(429) warning C4101 mutex_dir ローカル変数は 1 度も使われていません。 C \tools\download\mod_python-3.3.1\src\mod_python.c(826) warning C4047 初期化中 間接参照のレベルが apr_OFN_mp_release_interpreter_t (__cdecl *) と void (__cdecl *)(void) で異なっています。 C \tools\download\mod_python-3.3.1\src\mod_python.c(1985) warning C4244 関数 apr_off_t から apr_size_t への変換です。データが失われる可能性があります。 C \tools\download\mod_python-3.3.1\src\mod_python.c(2028) warning C4101 tmp_buck ローカル変数は 1 度も使われていません。 C \Program Files\Microsoft Visual Studio 9.0\VC\BIN\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -DWIN32 -DNDEBUG -D_WINDOWS -IC \tools\download\mod_python-3.3.1\src\include -IC \Apache2.2\include -IC \Python26\include -IC \Python26\PC /TcC \tools\download\mod_python-3.3.1\src\_apachemodule.c /Fobuild\temp.win32-2.6\Release\tools\download\mod_python-3.3.1\src\_apachemodule.obj _apachemodule.c c \python26\include\pyconfig.h(358) warning C4005 PLATFORM マクロが再定義されました。 c \apache2.2\include\os.h(41) PLATFORM の前の定義を確認してください C \Program Files\Microsoft Visual Studio 9.0\VC\BIN\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -DWIN32 -DNDEBUG -D_WINDOWS -IC \tools\download\mod_python-3.3.1\src\include -IC \Apache2.2\include -IC \Python26\include -IC \Python26\PC /TcC \tools\download\mod_python-3.3.1\src\connobject.c /Fobuild\temp.win32-2.6\Release\tools\download\mod_python-3.3.1\src\connobject.obj connobject.c c \python26\include\pyconfig.h(358) warning C4005 PLATFORM マクロが再定義されました。 c \apache2.2\include\os.h(41) PLATFORM の前の定義を確認してください C \tools\download\mod_python-3.3.1\src\connobject.c(41) warning C4273 MpConn_FromConn dll リンクが一貫していません。 c \tools\download\mod_python-3.3.1\src\include\connobject.h(53) MpConn_FromConn の前の定義を確認してください C \tools\download\mod_python-3.3.1\src\connobject.c(155) warning C4018 signed と unsigned の数値を比較しようとしました。 C \tools\download\mod_python-3.3.1\src\connobject.c(455) warning C4273 MpConn_Type dll リンクが一貫していません。 c \tools\download\mod_python-3.3.1\src\include\connobject.h(49) MpConn_Type の前の定義を確認してください C \Program Files\Microsoft Visual Studio 9.0\VC\BIN\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -DWIN32 -DNDEBUG -D_WINDOWS -IC \tools\download\mod_python-3.3.1\src\include -IC \Apache2.2\include -IC \Python26\include -IC \Python26\PC /TcC \tools\download\mod_python-3.3.1\src\filterobject.c /Fobuild\temp.win32-2.6\Release\tools\download\mod_python-3.3.1\src\filterobject.obj filterobject.c c \python26\include\pyconfig.h(358) warning C4005 PLATFORM マクロが再定義されました。 c \apache2.2\include\os.h(41) PLATFORM の前の定義を確認してください C \tools\download\mod_python-3.3.1\src\filterobject.c(80) warning C4273 MpFilter_FromFilter dll リンクが一貫していません。 c \tools\download\mod_python-3.3.1\src\include\filterobject.h(64) MpFilter_FromFilter の前の定義を確認してください C \tools\download\mod_python-3.3.1\src\filterobject.c(234) warning C4018 signed と unsigned の数値を比較しようとしました。 C \tools\download\mod_python-3.3.1\src\filterobject.c(243) warning C4018 signed と unsigned の数値を比較しようとしました。 C \tools\download\mod_python-3.3.1\src\filterobject.c(599) warning C4273 MpFilter_Type dll リンクが一貫していません。 c \tools\download\mod_python-3.3.1\src\include\filterobject.h(59) MpFilter_Type の前の定義を確認してください C \Program Files\Microsoft Visual Studio 9.0\VC\BIN\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -DWIN32 -DNDEBUG -D_WINDOWS -IC \tools\download\mod_python-3.3.1\src\include -IC \Apache2.2\include -IC \Python26\include -IC \Python26\PC /TcC \tools\download\mod_python-3.3.1\src\hlist.c /Fobuild\temp.win32-2.6\Release\tools\download\mod_python-3.3.1\src\hlist.obj hlist.c c \python26\include\pyconfig.h(358) warning C4005 PLATFORM マクロが再定義されました。 c \apache2.2\include\os.h(41) PLATFORM の前の定義を確認してください C \Program Files\Microsoft Visual Studio 9.0\VC\BIN\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -DWIN32 -DNDEBUG -D_WINDOWS -IC \tools\download\mod_python-3.3.1\src\include -IC \Apache2.2\include -IC \Python26\include -IC \Python26\PC /TcC \tools\download\mod_python-3.3.1\src\hlistobject.c /Fobuild\temp.win32-2.6\Release\tools\download\mod_python-3.3.1\src\hlistobject.obj hlistobject.c c \python26\include\pyconfig.h(358) warning C4005 PLATFORM マクロが再定義されました。 c \apache2.2\include\os.h(41) PLATFORM の前の定義を確認してください C \tools\download\mod_python-3.3.1\src\hlistobject.c(37) warning C4273 MpHList_FromHLEntry dll リンクが一貫していません。 c \tools\download\mod_python-3.3.1\src\include\hlistobject.h(43) MpHList_FromHLEntry の前の定義を確認してください C \tools\download\mod_python-3.3.1\src\hlistobject.c(184) warning C4273 MpHList_Type dll リンクが一貫していません。 c \tools\download\mod_python-3.3.1\src\include\hlistobject.h(39) MpHList_Type の前の定義を確認してください C \Program Files\Microsoft Visual Studio 9.0\VC\BIN\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -DWIN32 -DNDEBUG -D_WINDOWS -IC \tools\download\mod_python-3.3.1\src\include -IC \Apache2.2\include -IC \Python26\include -IC \Python26\PC /TcC \tools\download\mod_python-3.3.1\src\requestobject.c /Fobuild\temp.win32-2.6\Release\tools\download\mod_python-3.3.1\src\requestobject.obj requestobject.c c \python26\include\pyconfig.h(358) warning C4005 PLATFORM マクロが再定義されました。 c \apache2.2\include\os.h(41) PLATFORM の前の定義を確認してください C \tools\download\mod_python-3.3.1\src\requestobject.c(49) warning C4273 MpRequest_FromRequest dll リンクが一貫していません。 c \tools\download\mod_python-3.3.1\src\include\requestobject.h(59) MpRequest_FromRequest の前の定義を確認してください C \tools\download\mod_python-3.3.1\src\requestobject.c(886) warning C4244 = apr_off_t から long への変換です。データが失われる可能性があります。 C \tools\download\mod_python-3.3.1\src\requestobject.c(986) warning C4244 = apr_off_t から long への変換です。データが失われる可能性があります。 C \tools\download\mod_python-3.3.1\src\requestobject.c(1434) warning C4244 = apr_off_t から apr_size_t への変換です。データが失われる可能性があります。 C \tools\download\mod_python-3.3.1\src\requestobject.c(1609) warning C4244 初期化中 apr_off_t から long への変換です。データが失われる可能性があります。 C \tools\download\mod_python-3.3.1\src\requestobject.c(2050) warning C4273 MpRequest_Type dll リンクが一貫していません。 c \tools\download\mod_python-3.3.1\src\include\requestobject.h(55) MpRequest_Type の前の定義を確認してください C \Program Files\Microsoft Visual Studio 9.0\VC\BIN\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -DWIN32 -DNDEBUG -D_WINDOWS -IC \tools\download\mod_python-3.3.1\src\include -IC \Apache2.2\include -IC \Python26\include -IC \Python26\PC /TcC \tools\download\mod_python-3.3.1\src\serverobject.c /Fobuild\temp.win32-2.6\Release\tools\download\mod_python-3.3.1\src\serverobject.obj serverobject.c c \python26\include\pyconfig.h(358) warning C4005 PLATFORM マクロが再定義されました。 c \apache2.2\include\os.h(41) PLATFORM の前の定義を確認してください C \tools\download\mod_python-3.3.1\src\serverobject.c(37) warning C4273 MpServer_FromServer dll リンクが一貫していません。 c \tools\download\mod_python-3.3.1\src\include\serverobject.h(42) MpServer_FromServer の前の定義を確認してください C \tools\download\mod_python-3.3.1\src\serverobject.c(346) warning C4273 MpServer_Type dll リンクが一貫していません。 c \tools\download\mod_python-3.3.1\src\include\serverobject.h(38) MpServer_Type の前の定義を確認してください C \Program Files\Microsoft Visual Studio 9.0\VC\BIN\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -DWIN32 -DNDEBUG -D_WINDOWS -IC \tools\download\mod_python-3.3.1\src\include -IC \Apache2.2\include -IC \Python26\include -IC \Python26\PC /TcC \tools\download\mod_python-3.3.1\src\tableobject.c /Fobuild\temp.win32-2.6\Release\tools\download\mod_python-3.3.1\src\tableobject.obj tableobject.c c \python26\include\pyconfig.h(358) warning C4005 PLATFORM マクロが再定義されました。 c \apache2.2\include\os.h(41) PLATFORM の前の定義を確認してください C \tools\download\mod_python-3.3.1\src\tableobject.c(49) warning C4273 MpTable_FromTable dll リンクが一貫していません。 c \tools\download\mod_python-3.3.1\src\include\tableobject.h(47) MpTable_FromTable の前の定義を確認してください C \tools\download\mod_python-3.3.1\src\tableobject.c(77) warning C4273 MpTable_New dll リンクが一貫していません。 c \tools\download\mod_python-3.3.1\src\include\tableobject.h(48) MpTable_New の前の定義を確認してください C \tools\download\mod_python-3.3.1\src\tableobject.c(1050) warning C4273 MpTable_Type dll リンクが一貫していません。 c \tools\download\mod_python-3.3.1\src\include\tableobject.h(42) MpTable_Type の前の定義を確認してください C \tools\download\mod_python-3.3.1\src\tableobject.c(1097) warning C4273 MpTableIter_Type dll リンクが一貫していません。 c \tools\download\mod_python-3.3.1\src\include\tableobject.h(43) MpTableIter_Type の前の定義を確認してください C \Program Files\Microsoft Visual Studio 9.0\VC\BIN\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -DWIN32 -DNDEBUG -D_WINDOWS -IC \tools\download\mod_python-3.3.1\src\include -IC \Apache2.2\include -IC \Python26\include -IC \Python26\PC /TcC \tools\download\mod_python-3.3.1\src\util.c /Fobuild\temp.win32-2.6\Release\tools\download\mod_python-3.3.1\src\util.obj util.c c \python26\include\pyconfig.h(358) warning C4005 PLATFORM マクロが再定義されました。 c \apache2.2\include\os.h(41) PLATFORM の前の定義を確認してください C \tools\download\mod_python-3.3.1\src\util.c(122) warning C4244 関数 apr_ino_t から long への変換です。データが失われる可能性があります。 C \tools\download\mod_python-3.3.1\src\util.c(140) warning C4047 関数 間接参照のレベルが long と apr_uid_t で異なっています。 C \tools\download\mod_python-3.3.1\src\util.c(140) warning C4024 PyInt_FromLong の型が 1 の仮引数および実引数と異なります。 C \tools\download\mod_python-3.3.1\src\util.c(146) warning C4047 関数 間接参照のレベルが long と apr_gid_t で異なっています。 C \tools\download\mod_python-3.3.1\src\util.c(146) warning C4024 PyInt_FromLong の型が 1 の仮引数および実引数と異なります。 C \tools\download\mod_python-3.3.1\src\util.c(152) warning C4244 関数 apr_off_t から long への変換です。データが失われる可能性があります。 C \tools\download\mod_python-3.3.1\src\util.c(158) warning C4244 関数 double から long への変換です。データが失われる可能性があります。 C \tools\download\mod_python-3.3.1\src\util.c(164) warning C4244 関数 double から long への変換です。データが失われる可能性があります。 C \tools\download\mod_python-3.3.1\src\util.c(170) warning C4244 関数 double から long への変換です。データが失われる可能性があります。 C \Program Files\Microsoft Visual Studio 9.0\VC\BIN\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -DWIN32 -DNDEBUG -D_WINDOWS -IC \tools\download\mod_python-3.3.1\src\include -IC \Apache2.2\include -IC \Python26\include -IC \Python26\PC /TcC \tools\download\mod_python-3.3.1\src\finfoobject.c /Fobuild\temp.win32-2.6\Release\tools\download\mod_python-3.3.1\src\finfoobject.obj finfoobject.c c \python26\include\pyconfig.h(358) warning C4005 PLATFORM マクロが再定義されました。 c \apache2.2\include\os.h(41) PLATFORM の前の定義を確認してください C \tools\download\mod_python-3.3.1\src\finfoobject.c(36) warning C4273 MpFinfo_FromFinfo dll リンクが一貫していません。 c \tools\download\mod_python-3.3.1\src\include\finfoobject.h(41) MpFinfo_FromFinfo の前の定義を確認してください C \tools\download\mod_python-3.3.1\src\finfoobject.c(60) warning C4273 MpFinfo_New dll リンクが一貫していません。 c \tools\download\mod_python-3.3.1\src\include\finfoobject.h(42) MpFinfo_New の前の定義を確認してください C \tools\download\mod_python-3.3.1\src\finfoobject.c(129) warning C4047 関数 間接参照のレベルが long と apr_uid_t で異なっています。 C \tools\download\mod_python-3.3.1\src\finfoobject.c(129) warning C4024 PyInt_FromLong の型が 1 の仮引数および実引数と異なります。 C \tools\download\mod_python-3.3.1\src\finfoobject.c(137) warning C4047 関数 間接参照のレベルが long と apr_gid_t で異なっています。 C \tools\download\mod_python-3.3.1\src\finfoobject.c(137) warning C4024 PyInt_FromLong の型が 1 の仮引数および実引数と異なります。 C \tools\download\mod_python-3.3.1\src\finfoobject.c(145) warning C4244 関数 apr_ino_t から long への変換です。データが失われる可能性があります。 C \tools\download\mod_python-3.3.1\src\finfoobject.c(173) warning C4244 関数 apr_off_t から long への変換です。データが失われる可能性があります。 C \tools\download\mod_python-3.3.1\src\finfoobject.c(183) warning C4244 関数 double から long への変換です。データが失われる可能性があります。 C \tools\download\mod_python-3.3.1\src\finfoobject.c(191) warning C4244 関数 double から long への変換です。データが失われる可能性があります。 C \tools\download\mod_python-3.3.1\src\finfoobject.c(199) warning C4244 関数 double から long への変換です。データが失われる可能性があります。 C \tools\download\mod_python-3.3.1\src\finfoobject.c(371) warning C4273 MpFinfo_Type dll リンクが一貫していません。 c \tools\download\mod_python-3.3.1\src\include\finfoobject.h(37) MpFinfo_Type の前の定義を確認してください C \Program Files\Microsoft SDKs\Windows\v6.0A\bin\rc.exe -DWIN32 -DNDEBUG -D_WINDOWS -IC \tools\download\mod_python-3.3.1\src\include -IC \Apache2.2\include -IC \Python26\include -IC \Python26\PC /fobuild\temp.win32-2.6\Release\tools\download\mod_python-3.3.1\src\Version.res C \tools\download\mod_python-3.3.1\src\Version.rc Microsoft (R) Windows (R) Resource Compiler Version 6.1.6723.1 Copyright (C) Microsoft Corporation. All rights reserved. C \Program Files\Microsoft Visual Studio 9.0\VC\BIN\link.exe /DLL /nologo /INCREMENTAL NO /LIBPATH C \Apache2.2\lib /LIBPATH C \Python26\libs /LIBPATH C \Python26\PCbuild libhttpd.lib libapr-1.lib libaprutil-1.lib ws2_32.lib build\temp.win32-2.6\Release\tools\download\mod_python-3.3.1\src\mod_python.obj build\temp.win32-2.6\Release\tools\download\mod_python-3.3.1\src\_apachemodule.obj build\temp.win32-2.6\Release\tools\download\mod_python-3.3.1\src\connobject.obj build\temp.win32-2.6\Release\tools\download\mod_python-3.3.1\src\filterobject.obj build\temp.win32-2.6\Release\tools\download\mod_python-3.3.1\src\hlist.obj build\temp.win32-2.6\Release\tools\download\mod_python-3.3.1\src\hlistobject.obj build\temp.win32-2.6\Release\tools\download\mod_python-3.3.1\src\requestobject.obj build\temp.win32-2.6\Release\tools\download\mod_python-3.3.1\src\serverobject.obj build\temp.win32-2.6\Release\tools\download\mod_python-3.3.1\src\tableobject.obj build\temp.win32-2.6\Release\tools\download\mod_python-3.3.1\src\util.obj build\temp.win32-2.6\Release\tools\download\mod_python-3.3.1\src\finfoobject.obj build\temp.win32-2.6\Release\tools\download\mod_python-3.3.1\src\Version.res /OUT build\lib.win32-2.6\mod_python_so.pyd /IMPLIB build\temp.win32-2.6\Release\tools\download\mod_python-3.3.1\src\mod_python_so.lib /MANIFESTFILE build\temp.win32-2.6\Release\tools\download\mod_python-3.3.1\src\mod_python_so.pyd.manifest ライブラリ build\temp.win32-2.6\Release\tools\download\mod_python-3.3.1\src\mod_python_so.lib とオブジェクト build\temp.win32-2.6\Release\tools\download\mod_python-3.3.1\src\mod_python_so.exp を作成中 mod_python.obj warning LNK4217 ローカルで定義されたシンボル _MpServer_FromServer がフィクション _make_obcallback にインポートされました。 connobject.obj warning LNK4049 ローカルで定義されたシンボル _MpServer_FromServer がインポートされました。 requestobject.obj warning LNK4217 ローカルで定義されたシンボル _MpServer_FromServer がフィクション _req_register_input_filter にインポートされました。 mod_python.obj warning LNK4217 ローカルで定義されたシンボル _MpConn_FromConn がフィクション _mp_get_connection_object にインポートされました。 requestobject.obj warning LNK4217 ローカルで定義されたシンボル _MpConn_FromConn がフィクション _getreq_recmbr にインポートされました。 mod_python.obj warning LNK4217 ローカルで定義されたシンボル _MpHList_FromHLEntry がフィクション _python_handler にインポートされました。 filterobject.obj warning LNK4049 ローカルで定義されたシンボル _MpHList_FromHLEntry がインポートされました。 mod_python.obj warning LNK4217 ローカルで定義されたシンボル _MpRequest_FromRequest がフィクション _python_get_request_object にインポートされました。 mod_python.obj warning LNK4217 ローカルで定義されたシンボル _MpFilter_FromFilter がフィクション _python_filter にインポートされました。 _apachemodule.obj warning LNK4217 ローカルで定義されたシンボル _MpServer_Type がフィクション _mp_log_error にインポートされました。 _apachemodule.obj warning LNK4217 ローカルで定義されたシンボル _MpFinfo_New がフィクション _mp_stat にインポートされました。 _apachemodule.obj warning LNK4217 ローカルで定義されたシンボル _MpHList_Type がフィクション _init_apache にインポートされました。 _apachemodule.obj warning LNK4217 ローカルで定義されたシンボル _MpFilter_Type がフィクション _init_apache にインポートされました。 _apachemodule.obj warning LNK4217 ローカルで定義されたシンボル _MpRequest_Type がフィクション _init_apache にインポートされました。 serverobject.obj warning LNK4049 ローカルで定義されたシンボル _MpRequest_Type がインポートされました。 _apachemodule.obj warning LNK4217 ローカルで定義されたシンボル _MpConn_Type がフィクション _init_apache にインポートされました。 _apachemodule.obj warning LNK4217 ローカルで定義されたシンボル _MpTableIter_Type がフィクション _init_apache にインポートされました。 _apachemodule.obj warning LNK4217 ローカルで定義されたシンボル _MpTable_Type がフィクション _init_apache にインポートされました。 connobject.obj warning LNK4217 ローカルで定義されたシンボル _MpTable_FromTable がフィクション _MpConn_FromConn にインポートされました。 requestobject.obj warning LNK4049 ローカルで定義されたシンボル _MpTable_FromTable がインポートされました。 serverobject.obj warning LNK4049 ローカルで定義されたシンボル _MpTable_FromTable がインポートされました。 requestobject.obj warning LNK4217 ローカルで定義されたシンボル _MpFinfo_Type がフィクション _setreq_recmbr にインポートされました。 requestobject.obj warning LNK4217 ローカルで定義されたシンボル _MpFinfo_FromFinfo がフィクション _getreq_rec_fi にインポートされました。 C \Program Files\Microsoft SDKs\Windows\v6.0A\bin\mt.exe -nologo -manifest build\temp.win32-2.6\Release\tools\download\mod_python-3.3.1\src\mod_python_so.pyd.manifest -outputresource build\lib.win32-2.6\mod_python_so.pyd;2 building mod_python._psp extension C \Program Files\Microsoft Visual Studio 9.0\VC\BIN\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -DWIN32 -DNDEBUG -D_WINDOWS -IC \tools\download\mod_python-3.3.1\src\include -IC \Python26\include -IC \Python26\PC /TcC \tools\download\mod_python-3.3.1\src\psp_string.c /Fobuild\temp.win32-2.6\Release\tools\download\mod_python-3.3.1\src\psp_string.obj psp_string.c C \tools\download\mod_python-3.3.1\src\psp_string.c(53) warning C4018 signed と unsigned の数値を比較しようとしました。 C \tools\download\mod_python-3.3.1\src\psp_string.c(72) warning C4018 signed と unsigned の数値を比較しようとしました。 C \Program Files\Microsoft Visual Studio 9.0\VC\BIN\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -DWIN32 -DNDEBUG -D_WINDOWS -IC \tools\download\mod_python-3.3.1\src\include -IC \Python26\include -IC \Python26\PC /TcC \tools\download\mod_python-3.3.1\src\psp_parser.c /Fobuild\temp.win32-2.6\Release\tools\download\mod_python-3.3.1\src\psp_parser.obj psp_parser.c psp_parser.l(210) warning C4996 strcpy This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. psp_parser.l(211) warning C4996 strcat This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. psp_parser.l(218) warning C4996 fopen This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. C \Program Files\Microsoft Visual Studio 9.0\VC\INCLUDE\stdio.h(237) fopen の宣言を確認してください。 psp_parser.c(1665) warning C4273 isatty dll リンクが一貫していません。 C \Program Files\Microsoft Visual Studio 9.0\VC\INCLUDE\io.h(312) isatty の前の定義を確認してください psp_parser.c(1692) warning C4996 isatty The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name _isatty. See online help for details. C \Program Files\Microsoft Visual Studio 9.0\VC\INCLUDE\io.h(312) isatty の宣言を確認してください。 psp_parser.c(1692) warning C4996 fileno The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name _fileno. See online help for details. C \Program Files\Microsoft Visual Studio 9.0\VC\INCLUDE\stdio.h(722) fileno の宣言を確認してください。 C \Program Files\Microsoft Visual Studio 9.0\VC\BIN\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -DWIN32 -DNDEBUG -D_WINDOWS -IC \tools\download\mod_python-3.3.1\src\include -IC \Python26\include -IC \Python26\PC /TcC \tools\download\mod_python-3.3.1\src\_pspmodule.c /Fobuild\temp.win32-2.6\Release\tools\download\mod_python-3.3.1\src\_pspmodule.obj _pspmodule.c C \tools\download\mod_python-3.3.1\src\_pspmodule.c(81) warning C4996 strcpy This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. C \tools\download\mod_python-3.3.1\src\_pspmodule.c(82) warning C4996 strcat This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. C \tools\download\mod_python-3.3.1\src\_pspmodule.c(89) warning C4996 fopen This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. C \Program Files\Microsoft Visual Studio 9.0\VC\INCLUDE\stdio.h(237) fopen の宣言を確認してください。 C \Program Files\Microsoft Visual Studio 9.0\VC\BIN\link.exe /DLL /nologo /INCREMENTAL NO /LIBPATH C \Python26\libs /LIBPATH C \Python26\PCbuild /EXPORT init_psp build\temp.win32-2.6\Release\tools\download\mod_python-3.3.1\src\psp_string.obj build\temp.win32-2.6\Release\tools\download\mod_python-3.3.1\src\psp_parser.obj build\temp.win32-2.6\Release\tools\download\mod_python-3.3.1\src\_pspmodule.obj /OUT build\lib.win32-2.6\mod_python\_psp.pyd /IMPLIB build\temp.win32-2.6\Release\tools\download\mod_python-3.3.1\src\_psp.lib /MANIFESTFILE build\temp.win32-2.6\Release\tools\download\mod_python-3.3.1\src\_psp.pyd.manifest ライブラリ build\temp.win32-2.6\Release\tools\download\mod_python-3.3.1\src\_psp.lib とオブジェクト build\temp.win32-2.6\Release\tools\download\mod_python-3.3.1\src\_psp.exp を作成中 C \Program Files\Microsoft SDKs\Windows\v6.0A\bin\mt.exe -nologo -manifest build\temp.win32-2.6\Release\tools\download\mod_python-3.3.1\src\_psp.pyd.manifest -outputresource build\lib.win32-2.6\mod_python\_psp.pyd;2 running build_scripts creating build\scripts-2.6 copying win32_postinstall.py - build\scripts-2.6 installing to build\bdist.win32\wininst running install_lib creating build\bdist.win32 creating build\bdist.win32\wininst creating build\bdist.win32\wininst\PLATLIB creating build\bdist.win32\wininst\PLATLIB\mod_python copying build\lib.win32-2.6\mod_python\apache.py - build\bdist.win32\wininst\PLATLIB\mod_python copying build\lib.win32-2.6\mod_python\cache.py - build\bdist.win32\wininst\PLATLIB\mod_python copying build\lib.win32-2.6\mod_python\cgihandler.py - build\bdist.win32\wininst\PLATLIB\mod_python copying build\lib.win32-2.6\mod_python\Cookie.py - build\bdist.win32\wininst\PLATLIB\mod_python copying build\lib.win32-2.6\mod_python\importer.py - build\bdist.win32\wininst\PLATLIB\mod_python copying build\lib.win32-2.6\mod_python\psp.py - build\bdist.win32\wininst\PLATLIB\mod_python copying build\lib.win32-2.6\mod_python\publisher.py - build\bdist.win32\wininst\PLATLIB\mod_python copying build\lib.win32-2.6\mod_python\python22.py - build\bdist.win32\wininst\PLATLIB\mod_python copying build\lib.win32-2.6\mod_python\Session.py - build\bdist.win32\wininst\PLATLIB\mod_python copying build\lib.win32-2.6\mod_python\testhandler.py - build\bdist.win32\wininst\PLATLIB\mod_python copying build\lib.win32-2.6\mod_python\util.py - build\bdist.win32\wininst\PLATLIB\mod_python copying build\lib.win32-2.6\mod_python\_psp.pyd - build\bdist.win32\wininst\PLATLIB\mod_python copying build\lib.win32-2.6\mod_python\__init__.py - build\bdist.win32\wininst\PLATLIB\mod_python copying build\lib.win32-2.6\mod_python_so.pyd - build\bdist.win32\wininst\PLATLIB running install_scripts creating build\bdist.win32\wininst\SCRIPTS copying build\scripts-2.6\win32_postinstall.py - build\bdist.win32\wininst\SCRIPTS running install_egg_info Writing build\bdist.win32\wininst\PLATLIB\mod_python-3.3.1-py2.6.egg-info creating c \docume~1\cityas~1\locals~1\temp\tmpaps8_x.zip and adding . to it adding PLATLIB\mod_python-3.3.1-py2.6.egg-info adding PLATLIB\mod_python_so.pyd adding PLATLIB\mod_python\apache.py adding PLATLIB\mod_python\cache.py adding PLATLIB\mod_python\cgihandler.py adding PLATLIB\mod_python\Cookie.py adding PLATLIB\mod_python\importer.py adding PLATLIB\mod_python\psp.py adding PLATLIB\mod_python\publisher.py adding PLATLIB\mod_python\python22.py adding PLATLIB\mod_python\Session.py adding PLATLIB\mod_python\testhandler.py adding PLATLIB\mod_python\util.py adding PLATLIB\mod_python\_psp.pyd adding PLATLIB\mod_python\__init__.py adding SCRIPTS\win32_postinstall.py removing build\bdist.win32\wininst (and everything under it) mod_python-3.3.1/dist/dist/mod_python-3.3.1.win32-py2.6.exeを確認
https://w.atwiki.jp/usapfrog/pages/23.html
インストール (on CentOS 64bit 6.2) yumから以下をインストールする。 blas, blas-devel, atlas, atlas-devel, lapack, lapack-devel, arpack Linux で CLAPACK バージョン 3.2.1 のビルドとインストールに従ってclapack.tgzを落としてくる。 make.incの変更点は以下のとおり CC = gcc -DNO_BLAS_WRAP -m64 -fPIC -fomit-frame-pointer -O3 -fno-tree-vectorize -fexceptions -march=native -fopenmp (64bit, core-i7のため, 32bitとからなら -m64含めた先は不要らしい) LOADOPTS = -L/usr/lib64/atlas BLASLIB = /usr/lib64/atlas/libptf77blas.a -latlas -lpthread -lgomp (rpm -ql atlasでatlasの場所を調べたらここだった) 上記サイト通りに、 make -kでビルド。 エラーがでるが、lapack_LINUX.a, tmglib_LINUX.aとかができてる。 以下の3ライブラリを/usr/local/lib64とかにコピーする。 sudo cp lapack_LINUX.a /usr/local/lib64/libclapack.a sudo cp tmglib_LINUX.a /usr/local/lib64/libtmglib.a sudo cp F2CLIBS/libf2c.a /usr/local/lib64/libf2c.a ヘッダを/usr/local/includeにコピーする。読み取り権限を変更しておく。 sudo cp INCLUDE/*h /usr/local/include sudo chmod 644 /usr/local/include/*.h 参考 CLAPACK (f2c'ed version of LAPACK) Linux で CLAPACK バージョン 3.2.1 のビルドとインストール コンパイルの仕方 ソース内でこの順でインクルードするのに注意。 #include f2c.h #include clapack.h コンパイル gcc hoge.c -o hoge.out -lclapack -lblas -lm -lf2c Visual Studioでの使い方 CLAPACK (f2c'ed version of LAPACK)からはヘッダファイル(clapack.h, f2c.h)だけ落としてくる。 ソースのある場所か適当なインクルードパスに置く。 windowsでのインクルードパスの指定方法は環境変数に"INCLUDE"の名前で追加する。 ライブラリは予めコンパイルしてあるものを使うと楽。 CLAPACK PREBUILT LIBRARIES FOR WINDOWS MACHINE から libf2c.lib, clapack_nowrap.lib, BLAS_nowrap.lib, tmglib_nowrap.libを落としてくる。 ソースの近場かライブラリパスに追加する。 ソース中で以下のようにライブラリを指定する。(libをソースそばに置いた場合) #include "f2c.h"#include "clapack.h" #pragma comment(lib, "tmglib_nowrap.lib")#pragma comment(lib, "libf2c.lib")#pragma comment(lib, "BLAS_nowrap.lib")#pragma comment(lib, "clapack_nowrap.lib") Visual StudioのバージョンによってはLIBCMT.libと干渉するので、 プロジェクト(P) (プロジェクト名)のプロパティから、構成プロパティ リンカー 入力の、 「特定の規定のライブラリの無視」にLIBCMT.libを追加する 参考 CLAPACKをVisual Studio 2010上で使う 『自作ライブラリのリンクエラー(LIBCMT.lib)』について 使い方 行列は配列の形で与える。 A(3x3)なら double A[9]。 格納順はColumn-majorつまり 1列1行→1列2行→1列3行→・・・→2列1行 なのに注意。 A = なら 8 1 6 A[0]=8.0; A[3]=1.0; A[6]=6.0; 3 5 7 A[1]=3.0; A[4]=5.0; A[7]=7.0; 4 9 2 A[2]=4.0; A[5]=9.0; A[8]=2.0; dgesv(連立方程式解く)のとdgels(過剰決定or劣決定システムの最小二乗解, いわゆるフィッティング)は以下の手順。 //Ax=bを解くlong ROW, COL;double A[ROW*COL], b[ROW]; //おまじない的にいる引数long aROW=ROW;long bCOL=1;long LDA=ROW;long LDB=ROW;long INFO;double IPIV[ROW]; //結果はb[0-COL]に格納されるdgesv_( aROW, bCOL, A, LDA, IPIV, B, LDB, INFO); //過剰決定なら以下、やっぱりb[0-COL]に結果が格納される。long aCOL=COL;double work[ROW+COL];LDW=ROW+COL;dgels_( N , aROW, aCOL, bCOL, A, LDA, B, LDB, work, LDW, INFO); 参考 How to use CLAPACK
https://w.atwiki.jp/vocaloidenglishlyric/pages/271.html
【Tags G Miku tG buzzG】 Original Music Title GALLOWS BELL Music Lyrics written, Voice edited by buzzG Music arranged by buzzG Singer 初音ミク (Hatsune Miku) Click here for the Japanese Lyrics English Lyrics (translated by lygerzero0zero): In this cold room touched by not a single ray of light Let us rock the cradle of oblivion She gave to Him her smile and unconditional love Even when their farewell came, She spoke thus "Don't cry please, I'm sure that I wanted you to do this to me Don't mourn please, we'll soon see each other again Hey, now It's all right, I'm certain That you're not mad at all. It's just a little unreal, that's all." He caused Her life to end with his own hands For the two of them, a day more important than any other. Locked behind bars, with deadened eyes, He breathes on Even after being forgiven thousands of times, He spoke thus "My hands are stained with blood They will never return to normal, but I won't mourn, I'll see Her soon after all Hey, but Far more than remembering and weeping I'm afraid I won't be able to remember at all I won't wander, I won't regret But I'm just a little afraid…" The end has come, and now He In exchange for his trembling mind and body Recalls Her words Now, right now "Don't cry please, I'm sure that I wanted you to do this to me Don't mourn please, we'll soon see each other again Hey, now It's all right, I'm certain that you're not mad at all." The blessed bell rings, His footsteps grow light He now goes to meet Her He now goes to meet Her Singable English Lyrics (by ナノ(Nano)): Darkness locks me into this room the air I breathe has never felt so cold and I'm losing hold of everything I had so I'll rock myself to sleep Her beautiful smile was always just for him every corner of her heart was filled with her love for him Even when the time would come to say goodbye this is what she'd say "There's nothing to cry for, I want you to know that as long as it's you, this pain couldn't hurt me No reason to regret, I'll always be waiting for you my love oh It'll be alright, I want you to know that I'll always believe in the truth of your words The only thing unreal was my place in your heart She could feel his words wrap around her neck her very last breath was swallowed into silence and everything they had together fell away This is how their story ends Surrounded by an iron barricade gazing at the light with eyes of lead even after all the time gone by this is what he'd say "I look at these hands that are stained with blood and they'll never bring back all the things that they took so I won't turn back, I'll find you again someday I know oh If only the tears would erase all the memories then maybe I'd learn to fight all these fears won't hesitate, won't run away these are things I'm scared to say… As he is standing in light that is fading he's feeling the trembling beat of his heart and he remembers the sound of her very last words again again "There's nothing to cry for, I want you to know that as long as it's you, this pain couldn't hurt me No reason to regret, I'll always be waiting for you my love my love It'll be alright, I want you to know that I'll always believe in the truth of your words" With open arms, he looks to the sky finally, I've found my way my way to you my way to you Romaji lyrics (transliterated by motokokusanagi2009): hikari hitotsu mo todoka nai tsumetaku natta kono heya de saigo ni natta yuri kago o yurashi mashō kanojo wa kare ni egao to mushō no ai o sasage mashita sayōnara no sono toki mo kō ī mashita "naka nai de watashi wa kitto anata ni kō sare tai to nozonda no kuyama nai de sugu ni aeru kara nē mō daijōbu anata wa kitto kurutte nanka nai to omou no sukoshi dake Unreal tada sore dake" kare wa kanojo no inochi o jibun no te de owa rase mashita futari ni totte nani yori mo daiji na hi deshita tetsugōshi ni kako mare shin deru me de iki o shite nan zen kai yuru sareta ato mo kō ī mashita "kono te wa chi de fuyake te moto niwa mō modora nai keredo kuyama nai yo sugu ni aeru kara nē demo omoi dashi te naku yori zutto omoi dase nai koto ni obieru mayoi wa nai kōkai mo nai sukoshi dake kowai kedo..." kare wa ima saigo no toki furueru shinshin to hiki kae ni omoi dashi masu kanojo no kotoba o ima ima "naka nai de watashi wa kitto anata ni kō sare tai to nozonda no kuyama nai de sugu ni aeru kara nē mō daijōbu anata wa kitto kurutte nanka nai to omou no" shukufuku no kane ga nari ashimoto ga karuku nari ima ai ni iku ima ai ni iku
https://w.atwiki.jp/hmiku/pages/34591.html
【検索用 Allochroic Love 登録タグ A MEIKO MJQ ShinRa VOCALOID 曲】 + 目次 目次 曲紹介 歌詞 コメント 作詞:ShinRa 作曲:MJQ 編曲:MJQ 唄:MEIKO V3 ENGLISH 曲紹介 イラストを Jyante氏 が、動画を Inky-Soul氏 が手掛ける。 MJQ氏、1stアルバム『Gastronomic/Allochroic』収録曲。 歌詞 Is this LOVE? It's so complicated Sometimes, feels both sad and happy The mood changes like the canvas of LOVE Of LOVE You and me We are weird, but we like it Over time we just got the hang of it It is like a color changeable LOVE LOVE LOVE I am forever with you Trials and errors we have pulled through Everything it takes two You may be my every scar but still my love you are I am a fool who still love you Heart and soul all in one all to you In the palette shades of blue Colorful is want you are Colorful shining star Yeah, I want you to do want you did was right I know you want me all day night its you, me and the candle lights its me, you and excite paint on your skin, I'll show how I'll mix the colors right now pose up I will paint you up The moon shining down from the night sky City lights reflects from your eyes Endless gazing to thet color changeable love LOVE LOVE I am forever with you Trials and errors we have pulled through Everything it takes two You may be my every scar but still my love you are I am a fool who still love you Heart and soul all in one all to you In the palette shades of blue Colorful is want you are Colorful shining star I am forever with you Trials and errors we have pulled through Everything it takes two You may be my every scar but still my love you are I am a fool who still love you Heart and soul all in one all to you In the palette shades of blue Colorful is want you are Colorful shining star コメント 名前 コメント
https://w.atwiki.jp/wiki7_ahr/pages/19.html
#blognavi glibcには3つの簡単なメモリ・チェックツールが付属しています。 mcheck()、MALLOC_CHECK、mtrace()です。mcheck()とMALLOC_CHECKはヒープデータ構造 をチェックし、mcheck()は後の処理のためのメモリー獲得と解放のトレースを 行います。 カテゴリ [メモリ管理] - trackback- 2006年03月14日 22 43 27 #blognavi
https://w.atwiki.jp/bigoyayubi/pages/49.html
はじめに プログラムの準備 Memcheck上でプログラムを実行する Memcheckの出力メッセージの解説 はじめに Valgrindツール群はプログラムの品質向上を支援するデバッグ/分析ツールを提供します。 それらツールのうち最も有名なものは「Memcheck」と呼ばれています。 MemcheckはC/C++で共通する、クラッシュ、想定外の動作に至る多数のメモリー関連エラーを検出出来ます。 本ドキュメントでは以後、Memcheckを用いてプログラムのメモリーエラーを検出するために必要となる最低限の情報を提示します。 Memcheckと他ツールの全解説はUser Manualを参照して下さい。 プログラムの準備 コンパイルの際、-gオプションを指定しデバッグ情報を付加することでMemcheckのエラーメッセージに行数を含めることが出来ます。 実行速度低下が問題にならないのであれば、-O0オプションを指定することでより正確な情報が得られます。 一般的にMemcheckは-O1を指定してコンパイルしたコードをかなり正確かつ-O0より高速に動作させますが、エラーメッセージに含まれる行数が不正確たりえることは念頭においてください。 ーO2以上の最適化オプションの使用は、実際には存在しない未初期化変数エラーを計上することがあるため推奨できません。 Memcheck上でプログラムを実行する あなたが実行したいプログラムは以下のようなものとすると myprog arg1 arg2 下記のように実行します valgrind --leak-check=yes myprog arg1 arg2 Memcheckはデフォルトで動作するツールです。「--leak-check」オプションはメモリーリーク検査精度を変更します。 プログラムの実行速度は通常より遅くなるでしょう。(大体20〜30倍程度) Memcheckは発見したメモリーエラー,リークについてメッセージを出力します。 Memcheckの出力メッセージの解説 example.cというファイル名のメモリーエラーとメモリーリークを含むサンプルプログラムを用意します。 #include stdlib.h void f(void) { int * x = malloc(10 * sizeof(int)); x[10] = 0; // problem 1 heap block overrun } // problem 2 memory leak -- x not freed int main(void) { f(); return 0; } ほとんどのオーバーラン(problem1)エラーメッセージは以下のように出力されます。 ==19182== Invalid write of size 4 ==19182== at 0x804838F f (example.c 6) ==19182== by 0x80483AB main (example.c 11) ==19182== Address 0x1BA45050 is 0 bytes after a block of size 40 alloc d ==19182== at 0x1B8FF5CD malloc (vg_replace_malloc.c 130) ==19182== by 0x8048385 f (example.c 5) ==19182== by 0x80483AB main (example.c 11) 各項目について エラーメッセージが多数出力されます。注意深く読んで下さい。 19182はプロセスIDです。大抵の場合、重要な要素ではありません。 最初の行("Invalid write...")はエラーの種類を示しています。ここではオーバーランのせいで、書きこむべきでないメモリに書き込んでいます。 最初の行以降には問題発生箇所を示すスタックトレースが並びます。スタックトレースは特にC++STLを使用している場合大量に得られ、解析しにくいでしょう。 br;ボトムアップ式に読むことは有益です。もしスタックトレースをが十分でなかった場合は、--num-callersオプションを使用して行数を増やしてください。 コードアドレス(例:0x804838F)は大抵の場合、重要な要素ではありませんが、時折変なバグで決定的な解析要素となります。 いくつかのエラーメッセージではメモリーアドレスに続けて別要素を含んでいます。 br;このうちの1つではexample.c5行目にてmalloc()で確保されたメモリーの終端を通過して書きこまれたことを示しています。 あるエラーは別のエラーに起因して引き起こされることがあるため、報告に従いエラーを修正する価値があります。 Memcheckでそういったことを行うのは困難です。
https://w.atwiki.jp/darui_program/pages/235.html
#include iostream #include algorithm #include functional #include "gttest.h" #include "allocator.h" /*===============================================*/ /*MemoryInfo */ /*===============================================*/ struct MemoryInfo { void* address;//! アドレス const char* file;//! ファイル int line;//! ライン }; /*===============================================*/ /*DefaultAllocator */ /*===============================================*/ //----------------------------------------------- DefaultAllocator DefaultAllocator() { } //----------------------------------------------- DefaultAllocator ~DefaultAllocator() { } //----------------------------------------------- DefaultAllocator* DefaultAllocator Get() { static DefaultAllocator instance; return instance; } //----------------------------------------------- void* DefaultAllocator Allocate( size_t s, const char*, int ) { return operator new ( s ); } //----------------------------------------------- void DefaultAllocator Deallocate( void* p ) { operator delete ( p ); } /*===============================================*/ /*AllocateManager */ /*===============================================*/ //----------------------------------------------- AllocateManager AllocateManager() m_alloc( NULL ) { Set( NULL ); } //----------------------------------------------- AllocateManager ~AllocateManager() { } //----------------------------------------------- void* AllocateManager Allocate( size_t s, const char* f, int l ) { return m_alloc- Allocate( s, f, l ); } //----------------------------------------------- void AllocateManager Deallocate( void* p ) { m_alloc- Deallocate( p ); } //----------------------------------------------- void AllocateManager Set( IAllocator* alloc ) { if( alloc )m_alloc = alloc; elsem_alloc = DefaultAllocator Get(); } /*===============================================*/ /*Alloc */ /*===============================================*/ //----------------------------------------------- Alloc Alloc() m_manager() { } //----------------------------------------------- Alloc* Alloc Get() { static Alloc instance; return instance; } //----------------------------------------------- void* Alloc Allocate( size_t s, const char* f, int l ) { return m_manager.Allocate( s, f, l ); } //----------------------------------------------- void Alloc Deallocate( void* p ) { m_manager.Deallocate( p ); } //----------------------------------------------- void Alloc Set( IAllocator* alloc ) { m_manager.Set( alloc ); } /*===============================================*/ /*BaseAllocator */ /*===============================================*/ //----------------------------------------------- BaseAllocator BaseAllocator() { Alloc Get()- Set( this ); } //----------------------------------------------- BaseAllocator ~BaseAllocator() { Alloc Get()- Set( NULL ); } /*===============================================*/ /*Allocator */ /*===============================================*/ //----------------------------------------------- Allocator Allocator() m_container() { } //----------------------------------------------- Allocator ~Allocator() { if( m_container.empty() == false ) { std cout "MEMORY_LEAK!!" std endl; struct Print public std unary_function MemoryInfo*, void { void operator () ( MemoryInfo* mem ) { std cout "FILE " mem- file std endl; std cout " LINE " mem- line std endl; } }; struct Delete public std unary_function MemoryInfo*, void { void operator () ( MemoryInfo* mem ) { delete( mem- address ); delete( mem ); } }; std for_each( m_container.begin(), m_container.end(), Print() ); std for_each( m_container.begin(), m_container.end(), Delete() ); } } //----------------------------------------------- void* Allocator Allocate( size_t s, const char* f, int l ) { MemoryInfo* mem = new MemoryInfo(); mem- address = operator new( s ); mem- file = f; mem- line = l; m_container.push_back( mem ); return mem- address; } //----------------------------------------------- void Allocator Deallocate( void* p ) { iterator beg( m_container.begin() ), end( m_container.end() ); for( ; beg!=end; ++beg ) { if( (*beg)- address == p ) { delete( (*beg) ); m_container.erase( beg ); break; } } operator delete( p ); } //----------------------------------------------- bool Allocator Check() const { return m_container.empty(); }
https://w.atwiki.jp/ntaka206/pages/23.html
Armadillo220+kernel2.6.26でGPIO割り込みを受ける定数など 割り込みハンドラ登録 割り込みハンドラ Armadillo-220でiproute2を使うカーネルオプション iproute2のコンパイル atmark-dist カーネルconfig ダウンロードサイトURL atmark-distのビルド方法@Armadillo2x0 トラブルlibssp0-arm-cross 依存 gcc-4.1-base (= 4.1.1-21) apt-get updateでエラー「公開鍵を利用できない」 atmark-dist makeエラー arm-linux-gcc Command not found atmark-dist makeエラー stdio.h No such file or directory atmark-dist makeエラー tools/genfs_ext2.shでコンパイルに失敗 Armadillo220+kernel2.6.26でGPIO割り込みを受ける Armadillo220 Kernel linux-2.6.26-at4-ep93xx-port-pre1 Atmarkdist 20090318 GPIOポートの変化で割り込みを発生させるモジュール。 Kernel2.6.12で動いていたコードがそのままでは動かなくなった。 その時の修正ポイントメモ。 定数など struct gpio_port_reg { unsigned long ddr; unsigned long dr; unsigned long inten; unsigned long inttype1; unsigned long inttype2; unsigned long eoi; unsigned long db; unsigned long rawintsts; unsigned long intsts; }; // 2.6.26 static struct gpio_port_reg porta = { .ddr = EP93XX_GPIO_A_DIRECTION, .dr = EP93XX_GPIO_A_DATA, .inten = EP93XX_GPIO_A_INT_ENABLE, .inttype1 = EP93XX_GPIO_A_INT_TYPE1, .inttype2 = EP93XX_GPIO_A_INT_TYPE2, .eoi = EP93XX_GPIO_A_INT_ACK, .db = EP93XX_GPIO_A_DEBOUNCE, .rawintsts = EP93XX_GPIO_A_RAW_INT_STATUS, .intsts = EP93XX_GPIO_A_INT_STATUS, }; // 2.6.12 /* static struct gpio_port_reg porta = { .ddr = GPIO_PADDR, .dr = GPIO_PADR, .inten = GPIO_AINTEN, .inttype1 = GPIO_AINTTYPE1, .inttype2 = GPIO_AINTTYPE2, .eoi = GPIO_AEOI, .db = GPIO_ADB, .rawintsts = GPIO_RAWINTSTATUSA, .intsts = GPIO_INTSTATUSA, }; */ struct gpio_info { unsigned long no; struct gpio_port_reg *port; unsigned long bit; }; static struct gpio_info gpio[] = { {GPIO0, porta, BIT(4)}, {GPIO1, porta, BIT(5)}, {GPIO2, porta, BIT(6)}, {GPIO3, porta, BIT(7)}, }; #define change_reg_bit(REG,BIT,VALUE) \ ({ \ unsigned tmp; \ tmp = (inl(REG) ~BIT); \ outl(tmp | (VALUE ? BIT 0), REG); \ }) #define get_reg_bit(REG,BIT) \ inl(REG) BIT 割り込みハンドラ登録 //#defineIRQ_NOIRQ_GPIO;// 2.6.12 #defineIRQ_NO(64 + 4) // base(64) + gpio_no(PortA4)// 2.6.26 // 割り込みハンドラ登録 // ret = request_irq(irq, intsel_interrupt, SA_INTERRUPT, devname, NULL); // 2.6.12 ret = request_irq(IRQ_NO, intsel_interrupt, IRQF_DISABLED | IRQF_VALID | IRQF_PROBE, devname, NULL);// 2.6.26 if (ret 0) { printk(KERN_ERR "request_irq failed unregister driver ret=%d\n", ret); unregister_chrdev(devmajor, devname); return -EBUSY; } /* GPIO割り込み設定 立ち下がりINT */ // DDR = INPUT change_reg_bit(gpio[GPIO_INT].port- ddr, gpio[GPIO_INT].bit, 0); // Low levelでINT change_reg_bit(gpio[GPIO_INT].port- inttype1, gpio[GPIO_INT].bit, 0); change_reg_bit(gpio[GPIO_INT].port- inttype2, gpio[GPIO_INT].bit, 0); // DB = debounce無効 change_reg_bit(gpio[GPIO_INT].port- db, gpio[GPIO_INT].bit, 0); //EOI = clear change_reg_bit(gpio[GPIO_INT].port- eoi, gpio[GPIO_INT].bit, 1); //INTEN = enable change_reg_bit(gpio[GPIO_INT].port- inten, gpio[GPIO_INT].bit, 1); return 0; IRQF_DISABLED 以前のSA_INTERRUPTと同じ IRQF_VALID 多分IRQ有効にするという意味だろう。これがないと動かない。 IRQF_PROBE 不明(^^; 2.6.12では、GPIO全体の割り込み(IRQ_GPIO 59番)を使っていたが、2.6.26ではGPIOのbit毎の割り込みを使った。 ●2.6.12 GPIO全体の割り込み(IRQ_GPIO 59番)が使えた ●2.6.26 GPIO全体の割り込み(IRQ_EP93XX_GPIO_AB 59番)が使えない。 request_irqがエラーになる。 カーネル側でGPIO全体の割り込みを受けてからビットを見て割り振っている? GPIOビット毎の割り込みが使える。 今回の例では、GPIO0(Porta BIT4)では、IRQ_NO=(64 + 4) 64番+GPIOビット番号(0~24=PortA0~PortC7) Armadillo220のGPIO番号と、ここで言うGPIOビット番号は違う値なので注意! Armadillo220のGPIO番号は、ユーザーが使用可能な信号だけ連番にしている。 GPIOビット番号は、CPUが内蔵しているGPIO信号すべての連番である。 割り込みハンドラ //static irqreturn_t intsel_interrupt(int irq, void *dev_id, struct pt_regs *regs)// 2.6.12 static irqreturn_t intsel_interrupt(int irq, void *dev_id)// 2.6.26 { unsigned char*p; // 割り込みとして指定した信号がLowでなければ間違いなので戻る if (get_reg_bit(gpio[GPIO_RDY].port- dr, gpio[GPIO_RDY].bit)) { return IRQ_HANDLED; } // 割り込み処理を行う // ここでEOIしないこと、すると次の割り込みがかからない // カーネルでEOI済みだから? return IRQ_HANDLED; } 2.6.26では、最初の一回目の割り込みが入ると次の割り込みが入らなくなる症状が出た。 これを割り込みポートのレベルをチェックすることで回避した。 Lowレベル割り込みを指定しているのに、ポートをチェックするとHighになっている!? Armadillo-220でiproute2を使う カーネルオプション ArmadilloカーネルVer 2.6.12-3 ネタもと http //diffserv.sourceforge.net/ これは、カーネルオプションに存在しない。ネタもとが2.4だからだと思われる。 The following kernel configuration options have to be enabled in the section Networking options * Kernel/User netlink socket (CONFIG_NETLINK)なし 下記ONする。 * Network packet filtering (CONFIG_NETFILTER) x Symbol NETFILTER [=y] x x Prompt Network packet filtering (replaces ipchains) x x Defined at net/Kconfig 134 x x Depends on NET x x Location x x - Device Drivers x x - Networking support x x - Networking support (NET [=y]) x x - Networking options 下記ONする。 * QoS and/or fair queueing (CONFIG_NET_SCHED) x Symbol NET_SCHED [=n] x x Prompt QoS and/or fair queueing x x Defined at net/Kconfig 573 x x Depends on NET x x Location x x - Device Drivers x x - Networking support x x - Networking support (NET [=y]) x x - Networking options x x - QoS and/or fair queueing x 下記全てON The following kernel configuration options should be enabled in the section Networking options, QoS and/or fair queueing * CBQ packet scheduler (CONFIG_NET_SCH_CBQ) * The simplest PRIO pseudoscheduler (CONFIG_NET_SCH_PRIO) * RED queue (CONFIG_NET_SCH_RED) * GRED queue (CONFIG_NET_SCH_GRED) * Diffserv field marker (CONFIG_NET_SCH_DSMARK) * Ingress Qdisc (CONFIG_NET_SCH_INGRESS) * QoS support (CONFIG_NET_QOS) * Packet classifier API (CONFIG_NET_CLS) * TC index classifier (CONFIG_NET_CLS_TCINDEX) * Firewall based classifier (CONFIG_NET_CLS_FW) * U32 classifier (CONFIG_NET_CLS_U32) * Traffic policing (CONFIG_NET_CLS_POLICE) さらにカーネルでnetemをONにする x Symbol NET_SCH_NETEM [=n] x x Prompt Network emulator x x Defined at net/sched/Kconfig 207 x x Depends on NET NET_SCHED x x Location x x - Device Drivers x x - Networking support x x - Networking support (NET [=y]) x x - Networking options x x - QoS and/or fair queueing x x - QoS and/or fair queueing (NET_SCHED [=y]) x さらに TBF queue ON x Symbol NET_SCH_TBF [=n] x x Prompt TBF queue x x Defined at net/sched/Kconfig 171 x x Depends on NET NET_SCHED x x Location x x - Device Drivers x x - Networking support x x - Networking support (NET [=y]) x x - Networking options x x - QoS and/or fair queueing x x - QoS and/or fair queueing (NET_SCHED [=y]) x iproute2のコンパイル atmark-distに入っているiproute2だとエラーが出てコンパイルできず。 ここから http //devresources.linux-foundation.org/dev/iproute2/download/ iproute2-2.6.11-050330.tar.gzwを落とす。 Makefileにrmofs追加 iproute2/Makefile romfs $(ROMFSINST) etc /etc for i in $(SUBDIRS); \ do $(MAKE) -C $$i romfs; done iproute2/lib/Makefile romfs iproute2/tc/Makefile romfs $(ROMFSINST) -e CONFIG_USER_IPROUTE2_TC_TC /bin/tc $(ROMFSINST) -e CONFIG_USER_IPROUTE2_TC_TC /usr/lib/tc/q_netem.so iproute2/ip/Makefile romfs $(ROMFSINST) -e CONFIG_USER_IPROUTE2_IP_IFCFG /bin/ifcfg $(ROMFSINST) -e CONFIG_USER_IPROUTE2_IP_IP /bin/ip $(ROMFSINST) -e CONFIG_USER_IPROUTE2_IP_ROUTEF /bin/routef $(ROMFSINST) -e CONFIG_USER_IPROUTE2_IP_ROUTEL /bin/routel $(ROMFSINST) -e CONFIG_USER_IPROUTE2_IP_RTACCT /bin/rtacct $(ROMFSINST) -e CONFIG_USER_IPROUTE2_IP_RTMON /bin/rtmon $(ROMFSINST) -e CONFIG_USER_IPROUTE2_IP_RTPR /bin/rtpr romfsにディレクトリ追加 mkdir romfs/usr/lib/tc tc/Makefileは、atmark-distのオリジナルを参考に色々変更したので、全部を掲載する。 # Path to parent kernel include files directory KERNEL_INCLUDE=$(ROOTDIR)/$(LINUXDIR)/include LIBC_INCLUDE=$(ROOTDIR)/include DESTDIR= SBINDIR=/usr/sbin CONFDIR=/etc/iproute2 DOCDIR=/usr/share/doc/iproute2 MANDIR=/usr/share/man # Path to db_185.h include DBM_INCLUDE =/usr/include DEFINES= -DRESOLVE_HOSTNAMES #options if you have a bind =4.9.4 libresolv (or, maybe, glibc) #LDLIBS=-lresolv ADDLIB= LDLIBS = -lresolv $(LDLIBS) #options for decnet ADDLIB+=dnet_ntop.o dnet_pton.o #options for ipx ADDLIB+=ipx_ntop.o ipx_pton.o CC = arm-linux-gcc #CC = gcc HOSTCC = gcc #CCOPTS = -D_GNU_SOURCE -O2 -Wstrict-prototypes -Wall #CFLAGS = $(CCOPTS) -I../include $(DEFINES) CFLAGS = $(CCOPTS) $(GLIBCFIX) -I$(KERNEL_INCLUDE) -I../include $(DEFINES) $(CFLAGS) LDLIBS += -L../lib -lnetlink -lutil #LDLIBS += -L/usr/arm-linux/lib -L../lib -lnetlink -lutil #SUBDIRS=lib ip tc misc netem SUBDIRS=lib ip tc LIBNETLINK=../lib/libnetlink.a ../lib/libutil.a #all Config #all check-kernel all @for i in $(SUBDIRS); \ do $(MAKE) $(MFLAGS) -C $$i; done Config ./configure $(KERNEL_INCLUDE) check-kernel ifeq ($(KERNEL_INCLUDE),) @echo "Please, set correct KERNEL_INCLUDE"; false else @set -e; \ if [ ! -r $(KERNEL_INCLUDE)/linux/autoconf.h ]; then \ echo "Please, Compile the kernel first"; false; fi endif install all install -m 0755 -d $(DESTDIR)$(SBINDIR) install -m 0755 -d $(DESTDIR)$(CONFDIR) install -m 0755 -d $(DESTDIR)$(DOCDIR)/examples install -m 0755 -d $(DESTDIR)$(DOCDIR)/examples/diffserv install -m 0644 README.iproute2+tc $(shell find examples -maxdepth 1 -type f) \ $(DESTDIR)$(DOCDIR)/examples install -m 0644 $(shell find examples/diffserv -maxdepth 1 -type f) \ $(DESTDIR)$(DOCDIR)/examples/diffserv @for i in $(SUBDIRS) doc; do $(MAKE) -C $$i install; done install -m 0644 $(shell find etc/iproute2 -maxdepth 1 -type f) $(DESTDIR)$(CONFDIR) install -m 0755 -d $(DESTDIR)$(MANDIR)/man8 install -m 0644 $(shell find man/man8 -maxdepth 1 -type f) $(DESTDIR)$(MANDIR)/man8 ln -sf $(MANDIR)/man8/tc-pbfifo.8 $(DESTDIR)$(MANDIR)/man8/tc-bfifo.8 ln -sf $(MANDIR)/man8/tc-pbfifo.8 $(DESTDIR)$(MANDIR)/man8/tc-pfifo.8 install -m 0755 -d $(DESTDIR)$(MANDIR)/man3 install -m 0644 $(shell find man/man3 -maxdepth 1 -type f) $(DESTDIR)$(MANDIR)/man3 clean @for i in $(SUBDIRS) doc; \ do $(MAKE) $(MFLAGS) -C $$i clean; done clobber clean rm -f Config distclean clean clobber romfs $(ROMFSINST) etc /etc for i in $(SUBDIRS); \ do $(MAKE) -C $$i romfs; done .EXPORT_ALL_VARIABLES atmark-dist カーネルconfig $ make config いらないかも $ make menuconfig メニュー出るのでここでconfig変える $ make dep all ダウンロードサイトURL 意外と見つけにくいのでメモ http //download.atmark-techno.com/ http //armadillo.atmark-techno.com/filebrowser atmark-distのビルド方法@Armadillo2x0 http //manual.atmark-techno.com/armadillo-2x0/armadillo-200-series-software-manual/ch07 トラブル libssp0-arm-cross 依存 gcc-4.1-base (= 4.1.1-21) Armadillo開発環境(2009/07/21)インストール後に、apt-getで他のパッケージをインストールしようとすると下記のエラーが出る。 # apt-get install nfs-kernel-server 以下の問題を解決するために apt-get -f install を実行する必要があるかもしれません 以下のパッケージには満たせない依存関係があります libssp0-arm-cross 依存 gcc-4.1-base (= 4.1.1-21) しかし、4.1.2-25 はインストールされようとしています 原因は、開発環境がlenny未対応(etch対応)のため。 http //lists.atmark-techno.com/pipermail/armadillo/2009-March/004086.html 下記2つのページを元にして解決した。感謝! 備忘録 / memorandum book http //jikiba.blog120.fc2.com/ メモページ/Armadillo - MemoWiki on sasrai.ddo.jp http //sasrai.ddo.jp/~keiso/cgi-bin/memowiki/index.php?%A5%E1%A5%E2%A5%DA%A1%BC%A5%B8%2FArmadillo 上記ページでは、atde-essential-arm_5_all - atde-essential-arm_9_allに読み替える必要あり。 apt-get updateでエラー「公開鍵を利用できない」 W GPG error http //cdn.debian.or.jp etch Release 公開鍵を利用できないため、以下の署名は検証できませんでした NO_PUBKEY 9AA38DCD55BE302B W GPG error http //ftp.debian.or.jp etch/updates Release 公開鍵を利用できないため、以下の署名は検証できませんでした NO_PUBKEY 9AA38DCD55BE302B W GPG error http //security.debian.org etch/updates Release 公開鍵を利用でき ないため、以下の署名は検証できませんでした NO_PUBKEY 9AA38DCD55BE302B W これらの問題を解決するためには apt-get update を実行する必要があるかもしれま せん # gpg --keyserver pgp.mit.edu --recv-keys 9AA38DCD55BE302B # gpg --armor --export 9AA38DCD55BE302B | apt-key add - ネタもと 気長に日記 aptでつかう公開鍵の更新(玄箱:etch) http //w033.seesaa.net/article/28051911.html atmark-dist makeエラー arm-linux-gcc Command not found $ make make ARCH=arm CROSS_COMPILE=arm-linux- -C linux-2.6.x || exit 1 make[1] arm-linux-gcc Command not found $ su # cd /usr/bin # ln -s arm-linux-gnu-cpp-4.1 arm-linux-cpp # ln -s arm-linux-gnu-g++-4.1 arm-linux-g++ # ln -s arm-linux-gnu-gcc-4.1 arm-linux-gcc # ln -s arm-linux-gnu-ld arm-linux-ld # ln -s arm-linux-gnu-ar arm-linux-ar # ln -s arm-linux-gnu-addr2line arm-linux-addr2line # ln -s arm-linux-gnu-as arm-linux-as # ln -s arm-linux-gnu-c++filt arm-linux-c++filt # ln -s arm-linux-gnu-gdb arm-linux-gdb # ln -s arm-linux-gnu-gdbtui arm-linux-gdbtui # ln -s arm-linux-gnu-nm arm-linux-nm # ln -s arm-linux-gnu-objcopy arm-linux-objcopy # ln -s arm-linux-gnu-objdump arm-linux-objdump # ln -s arm-linux-gnu-ranlib arm-linux-ranlib # ln -s arm-linux-gnu-readelf arm-linux-readelf # ln -s arm-linux-gnu-run arm-linux-run # ln -s arm-linux-gnu-size arm-linux-size # ln -s arm-linux-gnu-strings arm-linux-strings # ln -s arm-linux-gnu-strip arm-linux-strip ATDE環境ならば上記作業は、 atde-essential-armというパッケージの postinstで生成されるそうです。 see /var/lib/dpkg/info/atde-essential-arm.postinst atmark-dist makeエラー stdio.h No such file or directory net.c 12 19 error stdio.h No such file or directory net.c 13 20 error unistd.h No such file or directory net.c 14 20 error stdlib.h No such file or directory $ su # cd /usr # ln -s arm-linux-gnu arm-linux atmark-dist makeエラー tools/genfs_ext2.shでコンパイルに失敗 tools/genfs_ext2.shでコンパイルに失敗します | Armadillo 開発者サイト http //armadillo.atmark-techno.com/faq/genext2fs-update 上記ページでは、genextfsを最新(1.3-7.1-cvs20050225)にしろと書いてあるが、現在2009/9では 1.4-rc1-2.1が最新である。 しかし、1.4-rc1-2.1では同じ問題が起こるので、結局はダウングレードすることになる。 インストールされていたバージョン 1.4-rc1-2.1 ここからdebファイルget genext2fs_1.3-7.1-cvs20050225_i386.deb http //armadillo.atmark-techno.com/filebrowser/armadillo-9/tools/ # dpkg --install genext2fs_1.3-7.1-cvs20050225_i386.deb dpkg - 警告 genext2fs のバージョンを 1.4-rc1-2.1 から 1.3-7.1-cvs20050225 にダ ウングレードしています。 genext2fsバージョン固定しておく # echo "genext2fs hold" | dpkg --set-selections 固定されたかどうかチェックする。Statusが以下のようになっていればOK。 # dpkg --status genext2fs Status hold ok installed 指定を解除する場合 # echo "genext2fs install" | dpkg --set-selections 名前 コメント
https://w.atwiki.jp/cocoareferencejp/pages/81.html
Tags Cocoa Data Types Collections リファレンス 未完 トップ リファレンス データ型とコレクション NSObjectクラスリファレンス NSObject クラスリファレンス (翻訳元) このページの最終更新:2010-02-12 ADCの最終更新:2009-08-28 継承するクラス なし(このクラスはルートクラスです) 準拠しているプロトコル NSObject フレームワーク /System/Library/Frameworks/Foundation.framework? 使用可能な環境 Mac OS X 10.0以降 コンパニオンガイド Cocoa Fundamentals Guide 宣言ファイル NSArchiver.hNSClassDescription.hNSKeyedArchiver.hNSObject.hNSObjectScripting.hNSPortCoder.hNSRunLoop.hNSScriptClassDescription.hNSThread.h サンプルコード CoreRecipes?From A View to A Movie?From A View to A Picture?ImageClient?Sketch+Accessibility? 概観(Overview) NSObjectはObjective-Cクラス階層におけるほとんどのクラスのルートクラスです。NSObjectクラスを通して、オブジェクトはランタイムの基本的インターフェースと、Objective-Cオブジェクトとして振る舞う能力を継承します。 セレクタ(Selectors) NSObjectにはObjective-Cランタイムを活用する為の特別なメソッドがあります。例えば、クラスやインスタンスが特定のメソッドに反応するかを呼び出す前に知ることができます。また、perform...メソッドなどを使って、メソッドの実装を呼び出すことができます。動的バインドを使えないので通常は推奨されませんが、メソッドの実装を関数のように呼び出すこともできます。 これらやこのクラスの他のメソッドはSEL型を引数にとります。効率化の為に、コンパイル後のコードではメソッドを表すのにASCIIのフルネームが使われることはありません。代わりに、コンパイラは、ランタイムではセレクタと呼ばれるユニークな識別記号を使います。メソッドのセレクタは@selector()ディレクティブを使って得ることができます。 SEL method = @selector(isEqual ); instanceMethodForSelector クラスメソッドとmethodForSelector インスタンスメソッドはIMP型のメソッドの実装を返します。IMP型はid型を戻り値に持ち、可変数(それに加えてすべてのメソッドに渡される、二つの「暗黙の」引数selfと_cmd)の引数をとる関数ポインタとして定義されています。 typedef id (*IMP)(id, SEL, ...); この定義はこれらのメソッドが返す関数ポインタのプロトタイプとして使用します。これはオブジェクトを引数と戻り値に持つメソッドには十分です。しかし、セレクタがid型以外の引数や戻り値を持つ場合、この型の関数はプロトタイプには適しません。適切なプロトタイプがなければ、コンパイラはfloatをdoubleに、charをintにして扱おうとします。これは実装が予期しないことであり、呼ばれるメソッドは異なった(誤った)働きをするでしょう。 これを回避する為には、独自のプロトタイプを提供する必要があります。以下の例では、test変数の宣言でisEqual メソッドの実装のプロトタイプを提供しています。test変数はBOOL型を返し、id型(それに加え2つの「暗黙の」引数)を引数に持つ関数ポインタとして定義されています。methodForSelector メソッドが返す値は同じ型の関数ポインタにキャストされています。 BOOL (*test)(id, SEL, id);test = (BOOL (*)(id, SEL, id))[target methodForSelector @selector(isEqual )];while ( !test(target, @selector(isEqual ), someObject) ) {...} 時には、変数宣言とmethodForSelector が返す関数ポインタをキャストするのに使う(IMPによく似た)型を明確に定義することもできます。以下の例では、EqualIMP型をこの目的で宣言しています。 typedef BOOL (*EqualIMP)(id, SEL, id);EqualIMP test;test = (EqualIMP)[target methodForSelector @selector(isEqual )];while ( !test(target, @selector(isEqual ), someObject) ) {...} どちらの方法でも、methodForSelector の戻り値を適切な関数の型にキャストすることが重要です。単にmethodForSelector が返した関数を呼んで、その戻り値を目的の型にキャストするだけでは不十分です。そうすることで、エラーが発生することもあります。 採用しているプロトコル(Adopted Protocols) NSObject – autorelease – class – conformsToProtocol – description – hash – isEqual – isKindOfClass – isMemberOfClass – isProxy – performSelector – performSelector withObject – performSelector withObject withObject – release – respondsToSelector – retain – retainCount – self – superclass – zone このクラスでできること(Tasks) クラスの初期化(Initializing a Class) + initialize + load オブジェクトの作成、複製、削除(Creating, Copying, and Deallocating Objects) + new + alloc + allocWithZone – init – copy + copyWithZone – mutableCopy + mutableCopyWithZone – dealloc – finalize クラスの識別(Identifying Classes) + class + superclass + isSubclassOfClass クラス機能の確認(Testing Class Functionality) + instancesRespondToSelector 準拠するプロトコルの確認(Testing Protocol Conformance) + conformsToProtocol メソッド情報の取得(Obtaining Information About Methods) – methodForSelector + instanceMethodForSelector + instanceMethodSignatureForSelector – methodSignatureForSelector オブジェクトの記述(Describing Objects) + description ポージング(Posing) + poseAsClass Deprecated in Mac OS X v10.5 (Discardable Content Proxy Support) – autoContentAccessingProxy メッセージ送信(Sending Messages) – performSelector withObject afterDelay – performSelector withObject afterDelay inModes – performSelectorOnMainThread withObject waitUntilDone – performSelectorOnMainThread withObject waitUntilDone modes – performSelector onThread withObject waitUntilDone – performSelector onThread withObject waitUntilDone modes – performSelectorInBackground withObject + cancelPreviousPerformRequestsWithTarget + cancelPreviousPerformRequestsWithTarget selector object メッセージ転送(Forwarding Messages) – forwardingTargetForSelector – forwardInvocation メソッドの動的解決(Dynamically Resolving Methods) + resolveClassMethod + resolveInstanceMethod エラー操作(Error Handling) – doesNotRecognizeSelector アーカイブ化(Archiving) – awakeAfterUsingCoder – classForArchiver – classForCoder – classForKeyedArchiver + classFallbacksForKeyedArchiver + classForKeyedUnarchiver – classForPortCoder – replacementObjectForArchiver – replacementObjectForCoder – replacementObjectForKeyedArchiver – replacementObjectForPortCoder + setVersion + version クラス記述の補助(Working with Class Descriptions) – attributeKeys – classDescription – inverseForRelationshipKey – toManyRelationshipKeys – toOneRelationshipKeys アップルスクリプト(Scripting) – classCode – className – copyScriptingValue forKey withProperties – newScriptingObjectOfClass forValueForKey withContentsValue properties – scriptingProperties – setScriptingProperties – scriptingValueForSpecifier クラスメソッド alloc クラスの新しいインスタンスを返します。 + (id)alloc 戻り値 クラスの新しいインスタンス。 解説 新しいインスタンスのisaインスタンス変数はクラスを表す構造体データに初期化されます。また、その他のインスタンス変数の領域は0で初期化されます。新しいインスタンスはデフォルトのゾーンに確保されます。特定のゾーンに確保することを明確にしたいときはallocWithZone メソッドを使ってください。 init...メソッドは初期化処理を完了するために必ず使用されなければなりません。以下に例を示します。 TheClass *newObject = [[TheClass alloc] init]; サブクラスは初期化コードを含める為にallocメソッドをオーバーライドするべきではありません。代わりに、クラス特有のinit...メソッドを使用するべきです。newメソッドによく似た、生成と初期化を統合したクラスメソッドを作ることもできます。 特に気をつけること メモリ管理(ガベージコレクションではない)を使用している場合、このメソッドは保持されたオブジェクトを返します。このオブジェクトはリファレンスカウンタが1で自動解放されません。このメソッドの呼び出し元はreleaseやautoreleaseメソッドを使ってこのオブジェクトを解放する義務があります。 使用可能な環境 Mac OS X v10.0以降 関連項目 - init 関係のあるサンプルコード Cocoa OpenGL? CoreRecipes? From A View to A Movie? FunHouse? OpenGL Screensaver? 宣言しているファイル NSObject.h インスタンスメソッド
https://w.atwiki.jp/threejs/pages/101.html
更新日:2013-05-06, r58 (モデルデータ:Elementalist Warrior female character ARTIST-3D.COM から拝借、改変) モデルが500KB、テクスチャが400KBあるので読み込みに時間がかかるかもしれない。 左ドラッグ、右ドラッグ、マウスホイールドラッグ上下で視点動かせる。 script src="MTLLoader.js" /script script src="OBJMTLLoader.js" /script MTLLoaderとOBJMTLLoader.jsを読み込んでおく。three.jsを読んだ後で。 three.jsセットの examples/js/loaders/ にある。 mtlフォーマットの詳細 MTL OBJ materials file var OBJMtl; var loader = new THREE.OBJMTLLoader(); // load完了時の動作 loader.addEventListener( load , function ( res ) { OBJMtl = res.content; scene.add( OBJMtl ); renderer.render( scene, camera ); }); // 読み込み開始。第1引数にOBJのURL、第2引数にmtlのURL loader.load( wor.obj , wor.mtl );